package com.dtx.interpreter;

/**
 * PrimitiveCommandNode对应的BNF描述如下。
 *
 *      <primitive command> ::= go | right | left
 *
 * 确实,PrimitiveCommandNode类的parse方法没有调用其他类的parse方法。
 * // <primitive command> ::= go | right | left
 */
public class PrimitiveCommandNode extends Node{

    private String name;

    @Override
    public void parse(Context context) throws ParseException {
        name = context.currentToken();
        context.skipToken(name);
        if(!name.equals("go") && !name.equals("right") && !name.equals("left")){
            throw new ParseException(name + " is undefined");
        }
    }

    @Override
    public String toString() {
        return name;
    }
}
